import axios from '@/common/request'
import store from '@/store'
import Vue from 'vue'
let vue = new Vue();
/**
 * 详情显示值处理
 * @param value
 * @returns {string}
 */
export  function valueProcess(value){
    var txt = "";
    var len = 30;
    if(!isEmpty(value)){
        if(value.length>len){
            txt='<span style="cursor:pointer" title='+value+'>'+value.substring(1,len)+'.....'+'</span>';
        }else{
            txt='<span style="cursor:pointer" title='+value+'>'+value+'</span>';
        }
    }
    return txt;
}
/**
 *判断值是否为空
 */
export  function isEmpty(value){
    if(value == undefined || value === null || value === "" ){
        return true;
    }else{
        return false;
    }
}

/**
 * 关闭btnloading
 * @param _this
 */
export function closeBtnLoading(_this) {
    setTimeout(() => {
        _this.loading = false;
    }, 1000);
}


export function closeLoading(_this) {
    // this.$Message.error('Fail!')
    _this.loading = false;
    // _this.$nextTick(() => {
    //     _this.loading = true;
    // });
}

export function myGuid() {
    function S4() {
        return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    }
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}


/**
 *
 * postAxios
 * @param url
 * @param param
 * @param callbackFun
 */
export function postAxios(url,param,callbackFun,thisVal){
    axios.post(url,param==null?{}:param)
        .then(function (response) {
            callbackFun(response);
        }).catch(function (error) {//提交异常
            vue.$Message.error("网络异常,请刷新重试");
            if(thisVal){
                store.commit('changeGlobalSpin', false);
                closeLoading(thisVal);
            }
    })
}

/**
 *
 * @param url
 * @param param
 * @param callbackFun
 */
export function getAxios(url,param,callbackFun){
    axios.get(url,param==null?{}:{
        params:param
    })
    .then(function (response) {
        callbackFun(response);
    }).catch(function (error) {//提交异常
        store.commit('changeGlobalSpin', false);
    vue.$Message.error("网络异常,请刷新重试");
    })
}

export function changeDate(dateVal) {
    if(isEmpty(dateVal)){
        return null;
    }
    var dateee = new Date(dateVal).toJSON();
    var date = new Date(+new Date(dateee)+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'');
    return date;
};

/**
 * 格式'2018-10-09 10:23:12'生成时间
 * @param value
 */
export function strToDate(value) {
    value = value.replace(/-/g,"/");
    var  date = new Date(value);
    return date;
}
/**
 * 数字转化(每三位用逗号分隔)
 */
export function toCommaString(value) {
    let result = '', counter = 0, pointValue = ''
    value = value + '';
    if (value.indexOf(".") != -1) {
        pointValue = value.slice(value.indexOf("."))
        value = value.slice(0, value.indexOf("."))
    }
    for (let i = value.length - 1; i >= 0; i--) {
        counter++;
        result = value.charAt(i) + result;
        if (!(counter % 3) && i !== 0) {
            result = ',' + result;
        }
    }
    return result + pointValue;
}

/**
 * 计算时间差
 * @param beginTime 格式：2017-08-21
 * @param endTime 格式：2017-08-21
 */
export function getDateDiffDay(beginTime,endTime) {
    let result = "--";
    if(isEmpty(endTime)){
       return result;
    }
    var date1 = Date.parse(new Date(beginTime.replace(/-/g, "/"))); //begintime 为开始时间
    var date2 = Date.parse(new Date(endTime.replace(/-/g, "/")));   // endtime 为结束时间
    var date3=date2-date1  //时间差的毫秒数
    //计算出相差天数
    var days=Math.floor(date3/(24*3600*1000))
    result=(days+1)+"天";
    return result;
}

/**
 * 计算时间差
 * @param beginTime 格式：2017-08-21
 * @param endTime
 */
export function getDateDiff(beginTime,endTime) {
    beginTime="2017-08-21 12:00:00";
    endTime = "2017-08-21 23:00:00";
    var date1 = Date.parse(new Date(beginTime.replace(/-/g, "/"))); //begintime 为开始时间
    var date2 = Date.parse(new Date(endTime.replace(/-/g, "/")));   // endtime 为结束时间
    var date3=date2-date1  //时间差的毫秒数
    //计算出相差天数
    var days=Math.floor(date3/(24*3600*1000))
   //计算出小时数
    var leave1=date3%(24*3600*1000)    //计算天数后剩余的毫秒数
    var hours=Math.floor(leave1/(3600*1000))
   //计算相差分钟数
    var leave2=leave1%(3600*1000)        //计算小时数后剩余的毫秒数
    var minutes=Math.floor(leave2/(60*1000))
     //计算相差秒数
    var leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数
    var seconds=Math.round(leave3/1000)
    alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
}
/**
 *计算当前元素所需要的高度
 */
export  function getMomentHeight(obj){
    let clientHeight = `${document.documentElement.clientHeight}`;
    let joinTableTop = document.querySelector(obj).getBoundingClientRect().top
    return  clientHeight - joinTableTop - 110
}
export function errorMessage(code) {
    return  "网络连接异常,请稍后重试!";
}


